package com.bsoft.gol.hcs.specialist.entity;

import com.fasterxml.jackson.annotation.JsonFormat;

import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import java.util.Date;

/**
 * @Author: lanyu
 * @Description: 随访路径详情因素类型关联表
 * @Date: create in 2022/5/19 14:58
 */
@Entity
@Table(name = "follow_up_route_detail_factor_relation")
public class FollowUpRouteDetailFactorRelation {
    private Long followUpFactorRelationId;
    private Long routeDetailId;
    private Long routeDetailFactorId;
    private Byte factorType;
    //指标结果ID
    private String indexResultId;
    @NotEmpty(message = "指标类型不能为空")
    private Byte factorNatureType;
    //指标性别限制
    private String factorGender;
    private String factorId;
    private String factorName;
    //指标年龄限制上限
    private String ageUpperLimit;
    //指标年龄限制下限
    private String ageLowerLimit;
    @NotEmpty(message = "指标结果不能为空")
    private String factorResultOne;
    private String factorResultTwo;
    private String factorResultUnit;
    //路径分支所选id 因素类别为路径分支 必填
    private Long routeBranchId;
    //路径分支类型 1-状态 2-执行次数 因素类别为路径分支 必填
    private Byte routeBranchType;
    //路径分支执行次数 因素类别为路径分支 必填
    private Integer routeBranchExecuteNum;
    //路径分支状态：1 执行中 2 停止 因素类别为路径分支 必填
    private Byte routeBranchStatus;
    //科室id 因素类别为 门诊/住院状态时 必填
    private String factorDeptId;
    //科室名称 因素类别为 门诊/住院状态时 必填
    private String factorDeptName;
    //医生id 因素类别为 接诊/责任医生时 必填
    private String factorDoctorId;
    //医生名称 因素类别为 接诊/责任医生时 必填
    private String factorDoctorName;
    //专病属性 id (分期/扩展属性) 因素类别为专病分期/扩展属性状态时 必填
    private String factorSpecialistId;
    //专病属性名称(分期/扩展属性) 因素类别为专病分期/扩展属性状态时 必填
    private String factorSpecialistName;
    //专病属性值id (分期/扩展属性) 因素类别为专病分期/扩展属性状态时 必填
    private String factorSpecialistValueId;
    //专病属性值 (分期/扩展属性) 因素类别为专病分期/扩展属性状态时 必填
    private String factorSpecialistValue;
    //诊断id 因素类别为诊断类型时 必填
    private String factorDiseaseId;
    //诊断名称 因素类别为诊断类型时 必填
    private String factorDiseaseName;
    //手术id 因素类别为手术名称时 必填
    private String factorOperateId;
    //手术名称 因素类别为手术名称时 必填
    private String factorOperateName;
    private Byte compareSign;
    private String status;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "GMT+8")
    private Date createDt;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh_CN", timezone = "GMT+8")
    private Date modifyDt;

    @Id
    @Column(name = "follow_up_factor_relation_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getFollowUpFactorRelationId() {
        return followUpFactorRelationId;
    }

    public void setFollowUpFactorRelationId(Long followUpFactorRelationId) {
        this.followUpFactorRelationId = followUpFactorRelationId;
    }
    @Basic
    @Column(name = "route_detail_id")
    public Long getRouteDetailId() {
        return routeDetailId;
    }

    public void setRouteDetailId(Long routeDetailId) {
        this.routeDetailId = routeDetailId;
    }
    @Basic
    @Column(name = "route_detail_factor_id")
    public Long getRouteDetailFactorId() {
        return routeDetailFactorId;
    }

    public void setRouteDetailFactorId(Long routeDetailFactorId) {
        this.routeDetailFactorId = routeDetailFactorId;
    }

    @Basic
    @Column(name = "factor_type")
    public Byte getFactorType() {
        return factorType;
    }

    public void setFactorType(Byte factorType) {
        this.factorType = factorType;
    }
    @Basic
    @Column(name = "factor_id")
    public String getFactorId() {
        return factorId;
    }

    public void setFactorId(String factorId) {
        this.factorId = factorId;
    }
    @Basic
    @Column(name = "factor_name")
    public String getFactorName() {
        return factorName;
    }

    public void setFactorName(String factorName) {
        this.factorName = factorName;
    }

    @Basic
    @Column(name = "index_result_id")
    public String getIndexResultId() {
        return indexResultId;
    }

    public void setIndexResultId(String indexResultId) {
        this.indexResultId = indexResultId;
    }

    @Basic
    @Column(name = "factor_nature_type")
    public Byte getFactorNatureType() {
        return factorNatureType;
    }

    public void setFactorNatureType(Byte factorNatureType) {
        this.factorNatureType = factorNatureType;
    }

    @Basic
    @Column(name = "factor_gender")
    public String getFactorGender() {
        return factorGender;
    }

    public void setFactorGender(String factorGender) {
        this.factorGender = factorGender;
    }

    @Basic
    @Column(name = "age_upper_limit")
    public String getAgeUpperLimit() {
        return ageUpperLimit;
    }

    public void setAgeUpperLimit(String ageUpperLimit) {
        this.ageUpperLimit = ageUpperLimit;
    }

    @Basic
    @Column(name = "age_lower_limit")
    public String getAgeLowerLimit() {
        return ageLowerLimit;
    }

    public void setAgeLowerLimit(String ageLowerLimit) {
        this.ageLowerLimit = ageLowerLimit;
    }

    @Basic
    @Column(name = "factor_result_one")
    public String getFactorResultOne() {
        return factorResultOne;
    }

    public void setFactorResultOne(String factorResultOne) {
        this.factorResultOne = factorResultOne;
    }

    @Basic
    @Column(name = "factor_result_two")
    public String getFactorResultTwo() {
        return factorResultTwo;
    }

    public void setFactorResultTwo(String factorResultTwo) {
        this.factorResultTwo = factorResultTwo;
    }

    @Basic
    @Column(name = "factor_result_unit")
    public String getFactorResultUnit() {
        return factorResultUnit;
    }

    public void setFactorResultUnit(String factorResultUnit) {
        this.factorResultUnit = factorResultUnit;
    }

    @Basic
    @Column(name = "route_branch_id")
    public Long getRouteBranchId() {
        return routeBranchId;
    }

    public void setRouteBranchId(Long routeBranchId) {
        this.routeBranchId = routeBranchId;
    }
    @Basic
    @Column(name = "route_branch_type")
    public Byte getRouteBranchType() {
        return routeBranchType;
    }

    public void setRouteBranchType(Byte routeBranchType) {
        this.routeBranchType = routeBranchType;
    }
    @Basic
    @Column(name = "route_branch_execute_num")
    public Integer getRouteBranchExecuteNum() {
        return routeBranchExecuteNum;
    }

    public void setRouteBranchExecuteNum(Integer routeBranchExecuteNum) {
        this.routeBranchExecuteNum = routeBranchExecuteNum;
    }
    @Basic
    @Column(name = "route_branch_status")
    public Byte getRouteBranchStatus() {
        return routeBranchStatus;
    }

    public void setRouteBranchStatus(Byte routeBranchStatus) {
        this.routeBranchStatus = routeBranchStatus;
    }
    @Basic
    @Column(name = "factor_dept_id")
    public String getFactorDeptId() {
        return factorDeptId;
    }

    public void setFactorDeptId(String factorDeptId) {
        this.factorDeptId = factorDeptId;
    }
    @Basic
    @Column(name = "factor_dept_name")
    public String getFactorDeptName() {
        return factorDeptName;
    }

    public void setFactorDeptName(String factorDeptName) {
        this.factorDeptName = factorDeptName;
    }
    @Basic
    @Column(name = "factor_doctor_id")
    public String getFactorDoctorId() {
        return factorDoctorId;
    }

    public void setFactorDoctorId(String factorDoctorId) {
        this.factorDoctorId = factorDoctorId;
    }
    @Basic
    @Column(name = "factor_doctor_name")
    public String getFactorDoctorName() {
        return factorDoctorName;
    }

    public void setFactorDoctorName(String factorDoctorName) {
        this.factorDoctorName = factorDoctorName;
    }
    @Basic
    @Column(name = "factor_specialist_id")
    public String getFactorSpecialistId() {
        return factorSpecialistId;
    }

    public void setFactorSpecialistId(String factorSpecialistId) {
        this.factorSpecialistId = factorSpecialistId;
    }
    @Basic
    @Column(name = "factor_specialist_name")
    public String getFactorSpecialistName() {
        return factorSpecialistName;
    }

    public void setFactorSpecialistName(String factorSpecialistName) {
        this.factorSpecialistName = factorSpecialistName;
    }
    @Basic
    @Column(name = "factor_specialist_value_id")
    public String getFactorSpecialistValueId() {
        return factorSpecialistValueId;
    }

    public void setFactorSpecialistValueId(String factorSpecialistValueId) {
        this.factorSpecialistValueId = factorSpecialistValueId;
    }

    @Basic
    @Column(name = "factor_specialist_value")
    public String getFactorSpecialistValue() {
        return factorSpecialistValue;
    }

    public void setFactorSpecialistValue(String factorSpecialistValue) {
        this.factorSpecialistValue = factorSpecialistValue;
    }

    @Basic
    @Column(name = "factor_disease_id")
    public String getFactorDiseaseId() {
        return factorDiseaseId;
    }

    public void setFactorDiseaseId(String factorDiseaseId) {
        this.factorDiseaseId = factorDiseaseId;
    }
    @Basic
    @Column(name = "factor_disease_name")
    public String getFactorDiseaseName() {
        return factorDiseaseName;
    }

    public void setFactorDiseaseName(String factorDiseaseName) {
        this.factorDiseaseName = factorDiseaseName;
    }
    @Basic
    @Column(name = "factor_operate_id")
    public String getFactorOperateId() {
        return factorOperateId;
    }

    public void setFactorOperateId(String factorOperateId) {
        this.factorOperateId = factorOperateId;
    }
    @Basic
    @Column(name = "factor_operate_name")
    public String getFactorOperateName() {
        return factorOperateName;
    }

    public void setFactorOperateName(String factorOperateName) {
        this.factorOperateName = factorOperateName;
    }
    @Basic
    @Column(name = "compare_sign")
    public Byte getCompareSign() {
        return compareSign;
    }

    public void setCompareSign(Byte compareSign) {
        this.compareSign = compareSign;
    }

    @Basic
    @Column(name = "status")
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Basic
    @Column(name = "create_dt")
    public Date getCreateDt() {
        return createDt;
    }

    public void setCreateDt(Date createDt) {
        this.createDt = createDt;
    }
    @Basic
    @Column(name = "modify_dt")
    public Date getModifyDt() {
        return modifyDt;
    }

    public void setModifyDt(Date modifyDt) {
        this.modifyDt = modifyDt;
    }
}
